package com.insight.dto.export;

import com.insight.common.enums.ExportFormat;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 数据字典导出创建请求DTO
 *
 * @author Insight Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExportCreateRequest {

    /**
     * 数据源ID
     */
    @NotNull(message = "数据源ID不能为空")
    private Long datasourceId;

    /**
     * 导出格式
     */
    @NotNull(message = "导出格式不能为空")
    private ExportFormat format;

    /**
     * 是否包含数据样例(可选,默认false)
     */
    @Builder.Default
    private Boolean includeData = false;

    /**
     * 模式名过滤(可选)
     */
    private List<String> schemaFilter;

    /**
     * 表名过滤正则表达式(可选)
     */
    private String tableFilter;

    /**
     * 是否自动归档到MinIO(可选,默认false)
     */
    @Builder.Default
    private Boolean autoArchive = false;

    /**
     * 自定义模板名称(可选)
     */
    private String customTemplate;
}
